// {
//     let ajax = (callback) => {
//         console.log('执行')
//         setTimeout(() => {
//             callback && callback.call()
//         }, 1000);
//     }
//     ajax(function () {
//         console.log('timeout1');
//     })
// }

// {
//     let ajax = function () {
//         console.log('执行2');
//         return new Promise(function (resolve, reject) {
//             setTimeout(() => {
//                 resolve()
//             }, 1000);
//         })
//     }
//     ajax().then(function () {
//         console.log('promise', 'timeout2')
//     })
// }

// {
//     let ajax = function () {
//         console.log('执行3');
//         return new Promise(function (resolve, reject) {
//             setTimeout(() => {
//                 resolve()
//             }, 1000);
//         })
//     };
//     ajax().then(function () {
//         return new Promise(function (resolve, reject) {
//             setTimeout(() => {
//                 resolve()
//             }, 1000);
//         }).then(function () {
//             console.log('timetout3');
//         })
//     })
// }

// {
//     let ajax = function (num) {
//         console.log("执行4");
//         return new Promise(function (resolve, reject) {
//             if (num > 5) {
//                 resolve()
//             } else {
//                 throw new Error('出错')
//             }
//         })
//     }

//     ajax(6).then(function () {
//         console.log('log', 6)
//     }).catch(function (err) {
//         console.log('catch', err)
//     })


//     ajax(3).then(function () {
//         console.log('log', 3)
//     }).catch(function (err) {
//         console.log('catch', err)
//     })
// }

// {
//     let ajax = function (num) {
//         console.log('run4');
//         return Promise(function (resolve, reject) {
//             if (num > 5) {
//                 resolve()
//             } else {
//                 throw new Error('huangliusong error')
//             }
//         })
//     }

//     ajax(6).then(function () {
//         console.log('log', 6);
//     }).catch(function (err) {
//         console.log('catch', err)
//     })
// }

{
    function loadImg(src) {
        return new Promise((resolve, reject) => {
            let img = document.createElement('img')
            img.src = src
            img.onload = function () {
                resolve(img)
            }
            img.onerror = function (err) {
                reject(err)
            }
        })
    }

    function showImgs(imgs) {
        imgs.forEach(function (img) {
            document.body.appendChild(img)
        });
    }

    Promise.all([
        loadImg('https://g-search3.alicdn.com/img/bao/uploaded/i4/i1/TB1uSVYNVXXXXXuXFXXXXXXXXXX_!!0-item_pic.jpg_460x460Q90.jpg'),
        loadImg('https://g-search1.alicdn.com/img/bao/uploaded/i4/i4/4218112429/O1CN011ToWVvl5khmtNzR_!!0-item_pic.jpg_460x460Q90.jpg'),
        loadImg('https://g-search3.alicdn.com/img/bao/uploaded/i4/i1/740002743/TB1IBiPaFooBKNjSZPhXXc2CXXa_!!0-item_pic.jpg'),
        loadImg('https://img.alicdn.com/imgextra/i3/2584304524/TB2RLT6dAfb_uJkHFrdXXX2IVXa_!!2584304524-0-beehive-scenes.jpg')
    ]).then(showImgs)
}